package structures.sort;

import java.util.Arrays;

public class InsertSortValue {

    private static final int LENGTH = 80000;

    public static void main(String[] args) {
        // 生成数据
        int[] data = new int[LENGTH];
        for (int index = 0; index < data.length; index++) {
            data[index] = (int) (Math.random() * LENGTH);
        }

        // 打印数据
//        System.out.println(Arrays.toString(data));

        long startTime = System.currentTimeMillis();
        insertSort(data);
        System.out.println("----------------消耗时间: " + (System.currentTimeMillis() - startTime) + " ms------------");

        // 打印数据
//        System.out.println(Arrays.toString(data));
    }


    /**
     * 这个思路太强了, 把数据与前面的数据逆向进行比较 换位(因为前面的数据已经是排序过得了)...所以很节约..)
     * @param data
     */
    private static void insertSort(int[] data) {
        for (int i = 1; i < data.length; i++) {
            for (int j = i; j > 0; j--) {
                if (data[j] < data[j - 1]) {
                    int temp = data[j];
                    data[j] = data[j - 1];
                    data[j - 1] = temp;
                } else {
                    break;
                }
            }
        }
    }


}
